package com.andova.module.api;

import android.app.Activity;
import android.app.Application;

import com.andova.lifecycle.ILifecycle;
import com.andova.module.dao.ModuleDaoManager;
import com.andova.module.dao.ModuleItem;

import java.util.List;

import androidx.annotation.IdRes;

/**
 * Created by Administrator on 2018-03-21.
 *
 * @author kzaxil
 * @since 1.0.0
 */
public interface IModuleManager {
    IModuleOptions getModuleOptions();

    ModuleDaoManager getModuleDaoManager();

    IModuleManager checkedGridViewId(Activity activity, @IdRes int id);

    IModuleManager uncheckedGridViewId(Activity activity, @IdRes int id);

    @IdRes
    int checkedGridViewId(Activity activity);

    @IdRes
    int uncheckedGridViewId(Activity activity);

    ILifecycle initialize(Application application, IModuleOptions options, IModuleProvider provider);

    List<ModuleItem> available();

    List<ModuleItem> unavailable();

    void removeCheckedGridViewId(Activity activity);

    void removeUncheckedGridViewId(Activity activity);
}
